package com.jingdianjichi.subject.domain.service;

import com.jingdianjichi.api.subject.entity.dto.PracticeSubjectDTO;
import com.jingdianjichi.api.subject.entity.vo.PracticeSubjectVO;
import com.jingdianjichi.subject.common.entity.PageResult;
import com.jingdianjichi.subject.domain.entity.SubjectInfoBO;
import com.jingdianjichi.subject.infra.basic.entity.SubjectInfoEs;

import java.util.List;

public interface SubjectDomainService {

    /**
     * 新增题目
     * @return
     */
    void add(SubjectInfoBO subjectInfoBO);

    /**
     * 查询题目列表
     *
     * @return
     */
    PageResult<SubjectInfoBO> getSubjectPage(SubjectInfoBO subjectInfoBO);


    /**
     * 查询题目信息
     *
     * @return
     */
    SubjectInfoBO getSubjectInfo(SubjectInfoBO subjectInfoBO);
    /**
     * 全文检索
     */
    PageResult<SubjectInfoEs> getSubjectPageBySearch(SubjectInfoBO subjectInfoBO);
    /**
     * 获取题目贡献榜
     */
    List<SubjectInfoBO> getContributeList();
    /**
     * 获取题目详情
     * @param practiceSubjectDTO
     * @return
     */
    PracticeSubjectVO getPracticeSubject(PracticeSubjectDTO practiceSubjectDTO);
}
